﻿using System.ComponentModel;
using Ops.Mpc.Collections;
using Ops.Mpc.Controllers;

namespace Ops.Mpc.States
{
    public interface IStateAction :  INamedItem
    {
        bool Execute(object context, ActionResultCallback actionResultCallback);
        bool IsAvailable { get; }
        IController Controller { get; set; }
        void Start();
        void Stop();
        void OnEnteringState();
        void OnLeavingState();
    }
}
